/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package systole.persistence.brokersInterface;

import java.util.List;
import systole.domain.signals.SignalFrequency;
import systole.exceptions.ExceptionDAO;
import systole.synchronization.remote.entities.SignalFrequencyRemote;

/**
 *
 * @author Juan Manuel
 */
public interface SignalFrequencySyncBroker {
     /**
     * 
     * @param signalFrequencyRemote
     * @throws ExceptionDAO 
     */
    public void saveSignalFrequencyRemote(SignalFrequencyRemote signalFrequencyRemote) throws ExceptionDAO;   

    /**
     * 
     * @return SignalFrequencyRemote list
     * @throws ExceptionDAO 
     */
    public List<SignalFrequencyRemote> getSignalFrequenciesToUpdate() throws ExceptionDAO;

    /**
     * 
     * @return
     * @throws ExceptionDAO 
     */
    public List<SignalFrequency> getSignalFrequenciesToUpload() throws ExceptionDAO;

    /**
     * 
     * @param frequency
     * @return
     * @throws ExceptionDAO
     */
    public SignalFrequencyRemote getFrequencyRemoteBySignalFrequency(SignalFrequency frequency) throws ExceptionDAO;
    
    /**
     * 
     * @return
     * @throws ExceptionDAO 
     */
    public int getLastRemoteSignalFrequencyIdSynchronized() throws ExceptionDAO;

    /**
     * 
     * @param remoteId
     * @return
     * @throws ExceptionDAO
     */
     public SignalFrequency getSignalFrequencyByRemoteId(int remoteId) throws ExceptionDAO;
}
